package top.zhimingw.service;

import top.zhimingw.pojo.Tag;

import java.util.List;

/**
 * @InterfaceName TagService
 * @Description (Tag)表服务接口
 * @Author:zhimingw
 * @Version 1.0
 * @since 2021/5/31 15:17
 */
public interface TagService {

    /**
    * @Description: 添加Tag
    * @Param: [tag]
    * @return: boolean
    * @Author: zhimingw
    * @Date: 2021/5/31
    */
    boolean insert(Tag tag);
    
    /**
    * @Description: 删除Tag
    * @Param: [id]
    * @return: boolean
    * @Author: zhimingw
    * @Date: 2021/5/31
    */
    boolean deleteById(Integer id);
    
    /**
    * @Description: 查询单条数据
    * @Param: [id]
    * @return: top.zhimingw.pojo.Tag
    * @Author: zhimingw
    * @Date: 2021/5/31
    */
    Tag queryById(Integer id);

    /**
    * @Description: 查询全部数据
    * @Param: []
    * @return: java.util.List<top.zhimingw.pojo.Tag>
    * @Author: zhimingw
    * @Date: 2021/5/31
    */
    List<Tag> queryAll();

    /**
    * @Description: 实体作为筛选条件查询数据
    * @Param: [tag]
    * @return: java.util.List<top.zhimingw.pojo.Tag>
    * @Author: zhimingw
    * @Date: 2021/5/31
    */
    List<Tag> queryAll(Tag tag);

    /**
    * @Description: 修改数据，哪个属性不为空就修改哪个属性
    * @Param: [tag]
    * @return: boolean
    * @Author: zhimingw
    * @Date: 2021/5/31
    */
    boolean update(Tag tag);

    /**
    * @Description: 根据文章ID查询所有标签
    * @Param: [id]
    * @return: java.util.List<top.zhimingw.pojo.Tag>
    * @Author: zhimingw
    * @Date: 2021/5/31
    */
    List<Tag> queryByArticleId(Integer id);
    
    /**
    * @Description: 根据标签ID获取关联文章的数量
    * @Param: [id]
    * @return: java.lang.Integer
    * @Author: zhimingw
    * @Date: 2021/5/31
    */
    Integer getArticleCount(Integer id);

    /**
    * @Description: 获取评论的数量
    * @Param: []
    * @return: java.lang.Integer
    * @Author: zhimingw
    * @Date: 2021/5/31
    */
    Integer getCount();
}
